@use plume_models::users::User;
@use crate::template_utils::*;
@use crate::routes::*;

@(ctx: BaseContext, user: &User, follows: bool, is_remote: bool, instance_url: String)

<div class="h-card">
    <div class="user">
        <div class="flex wrap" dir="auto">
            @avatar(ctx.0, user, Size::Medium, false, ctx.1)

            <h1 class="grow flex vertical">
                <span class="p-name">@user.name()</span>
                <small class="p-nickname">@user.fqn</small>
            </h1>

            <p class="grow">
                @if user.is_admin() {
                    <span class="badge">@i18n!(ctx.1, "Admin")</span>
                }

                @if ctx.2.clone().map(|u| u.id == user.id).unwrap_or(false) {
                    <span class="badge">@i18n!(ctx.1, "It is you")</span>
                    <a href="@uri!(user::edit: name = &user.username)" class="button inline-block">@i18n!(ctx.1, "Edit your profile")</a>
                }
            </p>
        </div>

        @if is_remote {
            <a class="inline-block u-url" href="@user.ap_url" rel="me" target="_blank">@i18n!(ctx.1, "Open on {0}"; instance_url)</a>
        } else {
            <a class="u-url" href="@user.ap_url"></a>
        }

        @if ctx.2.clone().map(|u| u.id != user.id).unwrap_or(true) {
            <form class="inline" method="post" action="@uri!(user::follow: name = &user.fqn)">
            @if follows {
                <input type="submit" value="@i18n!(ctx.1, "Unsubscribe")">
            } else {
                <input type="submit" value="@i18n!(ctx.1, "Subscribe")">
            }
            </form>
        }
    </div>
    <div class="user-summary p-note">
        @Html(user.summary_html.clone())
    </div>
</div>
